// 期刊
import { HTTP, api } from '../utils/http.js'

/**
 * 期刊 model
 * 用来获取数据
 */
class ClassicModel extends HTTP {

  // 获取最新一期的期刊数据
  getLatest(sCallbackSuccess, sCallbackError) {
    // 可以在此处网络请求
    this.request({
      ...api.classic.latest,
      success: (res) => {
        // 回调函数
        // 传递数据到外部
        sCallbackSuccess && sCallbackSuccess(res)

        // 保存最新期刊的编号
        this._setLatestIndex(res.index)
      },
      fail: (err) => {
          sCallbackError && sCallbackError(err)
      }
    })
  }

  /**
   * 获取当前期刊的上一期
   * @param {*} index 当前期刊的编号
   * @param {*} sCallbackSuccess 
   * @param {*} sCallbackError 
   */
  getPrevious(index, sCallbackSuccess, sCallbackError) {
    this.request({
      ...api.classic.provious,
      path: { index: index },
      success: (res) => {
        // 回调函数
        // 传递数据到外部
        sCallbackSuccess && sCallbackSuccess(res)
      },
      fail: (err) => {
          sCallbackError && sCallbackError(err)
      }
    })
  }

  /**
   * 获取当前期刊的下一期
   * @param {*} index 编号
   * @param {*} sCallbackSuccess 
   * @param {*} sCallbackError 
   */
  getNext(index, sCallbackSuccess, sCallbackError) {
    this.request({
      ...api.classic.next,
      path: { index: index },
      success: (res) => {
        // 回调函数
        // 传递数据到外部
        sCallbackSuccess && sCallbackSuccess(res)
      },
      fail: (err) => {
          sCallbackError && sCallbackError(err)
      }
    })
  }

  /**
   * 期刊是否是第一个
   */
  isFirst(index) {
    return index === 1 ? true : false
  }

  /**
   * 期刊是否是最新的一期
   */
  isLatest(index) {
    return this._getLatestIndex() === index ? true : false
  }

  /**
   * 保存最新一期的期刊编号
   * @param {*} index 期刊编号
   */
  _setLatestIndex(index) {
    wx.setStorageSync('latest', index)
  }


  /**
   * 获取最新一期的期刊编号
   * @param {*} index 期刊编号
   */
  _getLatestIndex() {
    return wx.getStorageSync('latest')
  }

  /**
   * 获取key
   * @param {*} index 
   */
  _getKey(index) {
    return 'classic-' + index
  }

}

export { ClassicModel }